package w83b.w83bOperacionesPaso.w83bMantenimientos.w83bDelegaciones;

import java.util.ArrayList;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.lang.StringUtils;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import w83b.w83bBeans.W83bDelegacionesBean;
import w83b.w83bUtilidades.W83bUtilidadesComunes;
import w83b.w83bUtilidadesComunes.W83bClsConstantes;
import es.ejie.frmk.presentacion.operacion.paso.Q70ActionPasoOP;
import es.ejie.frmk.presentacion.sesiondatos.Q70ContextoEJIE;

public class W83bTablaDelegacionesOPAction extends Q70ActionPasoOP{



	protected void processOP(Q70ContextoEJIE contexto, ActionErrors errores,
			ActionMapping mapping, ActionForm form, HttpServletRequest request,
			HttpServletResponse response) throws Exception {

				//Guardamos la accion en el contexto
		contexto.set("action",request.getParameter("action"));

		W83bDelegacionesBean delegacionesBean = (W83bDelegacionesBean)contexto.get("w83bDelegacionesBean");
		if((StringUtils.isEmpty((String)contexto.get("modoPantalla"))
				||W83bClsConstantes.MODO_BUSQUEDA.equals(contexto.get("modoPantalla")))){
				if("true".equals(request.getParameter(W83bClsConstantes.RIA_SEARCH))){
					delegacionesBean = new W83bDelegacionesBean();
					
					delegacionesBean.setCodTerritorio(request.getParameter("w83bDelegacionesBean.codTerritorio"));
					delegacionesBean.setDescTerritorio(request.getParameter("w83bDelegacionesBean.descTerritorio"));
					delegacionesBean.setCalle(request.getParameter("w83bDelegacionesBean.calle"));					
					delegacionesBean.setNumero(request.getParameter("w83bDelegacionesBean.numero"));
					delegacionesBean.setPiso(request.getParameter("w83bDelegacionesBean.piso"));
					delegacionesBean.setLetra(request.getParameter("w83bDelegacionesBean.letra"));
					delegacionesBean.setCodPostal(request.getParameter("w83bDelegacionesBean.codPostal"));
					delegacionesBean.setLocalidad(request.getParameter("w83bDelegacionesBean.localidad"));
					delegacionesBean.setDescLocalidad(request.getParameter("w83bDelegacionesBean.descLocalidad"));
					delegacionesBean.setTelefono1(request.getParameter("w83bDelegacionesBean.telefono1"));
					delegacionesBean.setTelefono2(request.getParameter("w83bDelegacionesBean.telefono2"));
					delegacionesBean.setFax(request.getParameter("w83bDelegacionesBean.fax"));
					delegacionesBean.setNumModelo(request.getParameter("w83bDelegacionesBean.numModelo"));
					delegacionesBean.setNumModeloSalida(request.getParameter("w83bDelegacionesBean.numModeloSalida"));
					delegacionesBean.setRegistroEntrada(request.getParameter("w83bDelegacionesBean.registroEntrada"));
					if(W83bClsConstantes.CONSTANTE_SERVICIOS_CENTRALES.equalsIgnoreCase(delegacionesBean.getCodTerritorio())){
						if(W83bClsConstantes.CONSTANTE_VITORIA.equalsIgnoreCase(delegacionesBean.getLocalidad())){
							delegacionesBean.setCodServCent(W83bClsConstantes.CONSTANTE_ALAVA);
						}else if(W83bClsConstantes.CONSTANTE_BILBAO.equalsIgnoreCase(delegacionesBean.getLocalidad())){
							delegacionesBean.setCodServCent(W83bClsConstantes.CONSTANTE_BIZKAIA);
						}else if(W83bClsConstantes.CONSTANTE_DONOSTIA.equalsIgnoreCase(delegacionesBean.getLocalidad())){
							delegacionesBean.setCodServCent(W83bClsConstantes.CONSTANTE_GIPUZKOA);
						}
					}else{
						delegacionesBean.setCodServCent(delegacionesBean.getCodTerritorio());
					}
			delegacionesBean = (W83bDelegacionesBean)W83bUtilidadesComunes.inicializarPaginador(request, delegacionesBean);
			//delegacionesBean.setPage("1");
			contexto.set("w83bDelegacionesBean",delegacionesBean);
			}else{
				delegacionesBean = (W83bDelegacionesBean)W83bUtilidadesComunes.inicializarPaginador(request, delegacionesBean);

				contexto.set("w83bDelegacionesBean",delegacionesBean);
			}
		}else if("sord".equals(request.getParameter("action"))){
			delegacionesBean = (W83bDelegacionesBean)W83bUtilidadesComunes.inicializarPaginador(request, delegacionesBean);			
			contexto.set("w83bDelegacionesBean",delegacionesBean);
		}else if(StringUtils.isEmpty(((W83bDelegacionesBean)contexto.get("w83bDelegacionesBean")).getSort())){
			delegacionesBean = (W83bDelegacionesBean)W83bUtilidadesComunes.inicializarPaginador(request, delegacionesBean);			
			contexto.set("w83bDelegacionesBean",delegacionesBean);
		}else if(W83bClsConstantes.MODO_BUSQUEDA_CONBUSQ_INICIAL.equals(contexto.get("modoPantalla"))){
			delegacionesBean = (W83bDelegacionesBean)W83bUtilidadesComunes.inicializarPaginador(request, delegacionesBean);			
			contexto.set("w83bDelegacionesBean",delegacionesBean);
		}

	}


	protected ActionForward processForward(Q70ContextoEJIE contexto,
			ActionErrors errores, ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) throws Exception {

		String action = (String)contexto.get("action");

		W83bDelegacionesBean delegacionesBean = (W83bDelegacionesBean)contexto.get("w83bDelegacionesBean");

		delegacionesBean.setIdioma((String)contexto.get(W83bClsConstantes.CONSTANTE_CONTEXTO_IDIOMA));

		contexto.set("w83bDelegacionesBean", delegacionesBean);

		if(null==(ArrayList)contexto.get("w83bListaDelegaciones")){	
			contexto.set("w83bListaDelegaciones", new ArrayList());
		}
			if ("find".equals(action)||"sord".equals(action)){
			//Si vengo de una pantalla anterior tengo que mirar si he realizado una búsqueda anterior
			if(StringUtils.isEmpty((String)contexto.get("modoPantalla"))
					||W83bClsConstantes.MODO_BUSQUEDA.equals(contexto.get("modoPantalla"))){
				return mapping.findForward("find");
			}else{
				contexto.set("modoPantalla",W83bClsConstantes.MODO_BUSQUEDA);
				if("delegaciones".equals((String)contexto.get("subOpFlag"))){
					contexto.set("migas","inicio.mantenimiento.delegaciones");
				}
				if("true".equals((String)contexto.get("busqRealizada"))){
					return mapping.findForward("find");					
				}
			}
		}

		return mapping.findForward("ok");		
	}


	
}
